Dart Future 工厂构造方法
该工厂方法使用 Timer.run
来异步执行 computation
函数,并返回一个 Future<T>
对象,其中 T
是 computation
的返回类型或错误类型。
实现:
factory Future(FutureOr<T> computation()) {
_Future<T> result = new _Future<T>();
Timer.run(() {
try {
result._complete(computation());
} catch (e, s) {
_completeWithErrorCallback(result, e, s);
}
});
return result;
}
参数:
computation
: 需要异步执行的函数。该函数应返回一个FutureOr<T>
对象。
返回值:返回一个类型为 Future<T>
的对象。
行为:
- 如果
computation
函数执行结果抛出异常,返回的Future
将以该错误完成。 - 如果
computation
返回的是一个Future
对象,创建的Future
会等待该Future
完成,并以相同的结果或错误完成。 - 如果
computation
返回的是一个非Future
值,返回的Future
将以该值完成。
示例
// 返回正常结果
Future<int> future = Future(() {
return 42;
});
// 返回异常
Future<int> anotherFuture = Future(() {
throw Exception('An error occurred');
});
本文作者:Maeiee
本文链接:Dart Future 工厂构造方法
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!